
package negocio;

import DAO.ClienteJpaController;
import DAO.EnderecoJpaController;
import DAO.TelefoneJpaController;
import DAO.exceptions.IllegalOrphanException;
import DAO.exceptions.NonexistentEntityException;
import DAO.exceptions.PreexistingEntityException;
import dominio.Cliente;
import dominio.Endereco;
import dominio.Telefone;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;


public class ClienteNegocio {

    protected ClienteJpaController dao = new ClienteJpaController();
    protected EnderecoJpaController endDao = new EnderecoJpaController();
    protected TelefoneJpaController telDao = new TelefoneJpaController();

    public ClienteNegocio(){

    }

   
/**
 * O negocio chama o método incluirClienteDAO no DAO
 */
    public String incluirClienteDAO(Cliente c) {
        try {
            dao.create(c);
            return "Cliente cadastrado com sucesso";
        } catch (Exception ex) {

            ex.getStackTrace();
            return "Erro ao cadastrar";
        } 
     }

    public String alterarClienteDAO (Cliente client)
    {
           try
           {
               dao.edit(client);
               return "Cliente alterado com sucesso";
           } catch (Exception ex) {
                ex.getStackTrace();
                return "Erro na alteração";
           }

    }

    

    
    public String excluirClienteDAO(String c)  {
        try {
              dao.destroy(c);
              return "Cliente excluído com sucesso";
        } catch (Exception ex) {
            ex.getStackTrace();
            return "Erro na exclusão";
        } 
    }

    public List<Cliente> listar ()
    {
        return dao.findClienteEntities();
    }

    public List<Cliente> listarPorCpf (String id)
    {
        List<Cliente> lista = new ArrayList<Cliente>();
        Cliente c = new Cliente();
        c = dao.findCliente(id);
        lista.add(c);
        return lista;
    }

    public Cliente pesquisarCliente (String cpf)
    {
        try
        {
            return dao.findCliente(cpf);
        }catch (Exception e)
        {
            e.getStackTrace();
            return null;
        }
    }

    public List<Cliente> listarPorNome (String nome)
    {
        List<Cliente> res = new ArrayList<Cliente>();
        try
        {
            return res = dao.findForName(nome);
        }catch (Exception e)
        {
            e.getStackTrace();
        }
        return res;

    }


}
